import { error } from "cc";
import { SpecialResMgr } from "./SpecialResMgr";

export class ResMgr {
    //创建容器用于存储各个具体资源的管理者
    private _mapMgr: Map<string, SpecialResMgr> = new Map();

    constructor() {

    }



    //将创建的资源管理者添加到容器中，方便后续获取资源管理者
    addMgr(mgrName: string, mgr: SpecialResMgr) {
        if (mgrName.length <= 0 || !mgr) {
            error(mgrName + "名字为空或者资源类型为空");
            return;
        }
        if (this._mapMgr.has(mgrName)) {
            error(mgrName + "管理者已经存在");
            return;
        }
        this._mapMgr.set(mgrName, mgr);
    }

    //获取资源管理者
    getMgr<T>(mgrName: string): T {
        if (mgrName.length <= 0) {
            error("管理者名字为空");
            return;
        }
        let mgr = this._mapMgr.get(mgrName);

        if (!mgr) {
            error(mgrName + "管理者不存在");
            return null;
        }
        return mgr as T;
    }

}

export let resMgr: ResMgr = new ResMgr();